package com.gopay.common.oldmermove.dao;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import com.gopay.common.base.dao.BaseDAO;
import com.gopay.common.constants.oldmermove.OldMerTranEffectStatus;
import com.gopay.common.domain.oldmermove.OldMovedMer;
/**
 * 老平台迁移商户记录
 * @OldMovedMerDAO.java
 * @author lizheng
 * @2014-7-3 下午4:24:46  www.gopay.com.cn Inc.All rights reserved.
 */
public interface OldMovedMerDAO extends BaseDAO<OldMovedMer, Serializable> {

	/**
	 * 根据老平台商户ID查询
	 */
	OldMovedMer getByOldMerId(String oldMerId);

	/**
	 * 根据新平台商户ID查询
	 */
	OldMovedMer getByNewMerId(String newMerId);

	/**
	 * 根据旧平台商户ID，查询是否设定生效
	 * @param oldMerIdArray    旧平台商户ID数组
	 * @return
	 */
    Map<String, OldMerTranEffectStatus> findSetupEffectByOldMerId(List<String> oldMerIdArray);

    /**
     * 分页查询已已经数据迁移的商户数据
     */
    List<?> findHaveMovedMerInfo(Map<String, String> args, Integer pageIndex, Integer pageSize);

    /**
     * 分页查询已已经数据迁移的商户数据条数
     */
    int findCountHaveMovedMerInfo(Map<String, String> args);

    /**
     * 根据参数查询迁移商户数据
     */
    List<?> findOldMerMovedInfoByParam(Map<String, String> args);

    /**
     * 更新m集合数据的tranEffectStatus属性
     * @param merSet
     * @param effectStatus
     */
	void updateTranEffectStatusByMerSet(Collection<OldMovedMer> merSet, OldMerTranEffectStatus effectStatus);

	/**
	 * 根据旧平台企业客户号查询
	 * @param customerId 旧平台企业客户ID
	 * @return
	 */
	OldMovedMer getOldMovedMerByCustomerId(String customerId);
}
